
export function getOriginURL(url) {
    if (url.indexOf("http://") > -1 || url.indexOf("https://") > -1) {
        return url;    
    } else {
        if(url.indexOf('{*}') != -1 ){
            let location_href = location.origin.slice(0,location.origin.lastIndexOf(':'))
            return  location_href + url.slice(3);
        }else{
            return window.location.origin + url;
        }
    }
}

/**
 * 下载模板
 * @param {Blob} Blob 
 * @param {string} fileName 
 */
export const download = (blob,fileName)=>{
    const a = document.createElement('a');
    a.href = URL.createObjectURL(blob);
    a.download = `${fileName}`;
    a.click();
    URL.revokeObjectURL(a.href);
    a.remove();
}

/**
 * 判断数据类型
 * @param {string}  value
 * @return {string}
 */
export const isObject = (value) =>{
    return Object.prototype.toString.call(value).slice(8,-1)
}

/**
 * @name 动态表格校验方法
 * @param array table 数据   columns 表头数据
 * @returns 
 */
 export const useTableFormChecked = (array, columns) => {
    let flag = false
    const titles = []
    array.forEach(t => {
      Object.keys(t).forEach((key) => {
        const item = columns.find(l => l.key === key)
        // 有值 且 值格式对
        if (t[key] && item?.checkCallback && typeof item.checkCallback == 'function') {
          const reg = item.checkCallback(t[key])
          if (reg) return
          titles.push(item.title)
          flag = true
        }
        // 没值 且 必填
        if (!t[key] && item?.required) {
          titles.push(item.title)
          flag = true
        }
        if ((!t[key] || t[key] === null) && t[key] !== 0 && t[key] !== false) t.isError = true
      })
    })
    return { flag: flag, titles: titles }
  }

  export const fileToBase64Async = (img, callback)=>{
    const reader = new FileReader();
    reader.addEventListener('load', () => callback(reader.result));
    reader.readAsDataURL(img);
  }

   /**
   * 时间差，
   * date1 开始时间
   * date2 结束时间
   * 例：this.$timeDifference(1523440865000,1523440865000) 得到 '小时-分钟-秒'
   */
export function timeDifference(date3){
  //计算出相差天数
  // var days=Math.floor(date3/(24*3600*1000))

  //计算出小时数
  var hours=Math.floor(date3/(3600*1000))
  var date3 = date3 - (hours*3600*1000)    //计算小时数后剩余的毫秒数
  //计算相差分钟数
  var minutes=Math.floor(date3/(60*1000))
  date3 = date3 - (minutes*60*1000)        //计算分钟数后剩余的毫秒数
  //计算相差秒数
  var second = Math.floor(date3/(1000));

  if (hours < 0) return ''
  let time
  if(hours == 0){
      time = `${minutes}分钟${second}秒`;
      if(minutes == 0){
          time = `${second}秒`;
      }
  }else{
      time = `${hours}小时${minutes}分钟${second}秒`
  }
  return time
}
